In the field of online shopping on WWW (the World Wide Web), successful cases have been reported in several areas such as travel, books, CD (compact disk) and help-wanted information, and it is believed that more will develop from now on. The form of this online shopping is also shifting from that of simply displaying the goods such as conventional HTML (Hyper Text Markup Language) files or DB (DataBase) and CGI (Common Gateway Interface) to that of collectively browsing multiple sites or searching appropriate goods by learning a user's taste. This so-called “agent technology” is particularly well suited for such new forms of online interactions. For instance, an information retrieval agent for each user and an information provision agent for each company opening a shop are generated. Information retrieval and sale of goods can be performed by means of conversations between these agents. These agents may be mobile agents, but they must act together at least temporarily at one site (agent server). Since the information retrieval agents, whose number is equal to the number of users, are generated and each of them performs necessary information retrieval, the load on the server becomes heavier as the number of agents becomes larger. The server resources used by an agent are main storage device and threads. In case of the information retrieval agent, even more of the capacity of the main storage device will be required if the results of information retrieval are retained. Furthermore, since more companies are opening their “shops” and the number of information provision agents increases in accordance with increasing use of the agent servers, the load on the servers becomes even heavier. The information provision agent will also generally retain goods information in a database, and such database retrieval causes additional heavy loading.
As mentioned above, the load control of a server is a major problem. Accordingly, load has conventionally been reduced by decreasing the number of agents through storing inactive, non-processing agents in a secondary storage device such as HDD (Hard Disk Drive) inside the server. However, they are not stored in a secondary storage device by considering the exchange of messages between the agents. Alternatively, U.S. Pat. No. 5,706,516 mentions load control 110 which allows an administrator to define a number of valid tokens and which allows only an agent which has acquired a token to execute processing. Nevertheless, this patent does not control load considering the exchange of messages between the agents.
Meanwhile, to exchange messages between agents and make a conversation between them, there must be a common conversation rule between them. Accordingly, if a type database defining a conversation rule between agents is set up on a agent server (see: e.g., IBM Technical Disclosure Bulletin, Vol. 40, No. 12, p. 29 December, 1997) to generate an agent which outputs a message following the conversation rule, a conversation can be made on that agent server with other agents which also follow the conversation rule. It also may happen, however, that the agent server may have an agent which outputs messages which do not follow the conversation rule due to program errors (or purposely); or there may be an agent which outputs messages which have a bad influence on the system. There has been no countermeasure against such illegal or invalid agents.
Consequently, an object of the present invention is to control the load on an agent server. More specifically, the invention is directed to providing a method for controlling an activation/deactivation of an agent by examining messages.
Another object is to detect illegal or invalid agents and perform a countermeasure, by examining messages, to detect illegal or invalid agents which output illegal or invalid messages and to provide a method for deactivating such illegal or invalid agents.
Meanwhile, activating an agent means putting an agent in a state where it can perform processing, while deactivating an agent means storing an agent in a secondary storage device in a state where it can be reactivated, or in some cases discarding it.